package cn.edu.controller;

import cn.edu.exception.BussinessException;
import cn.edu.exception.SystemException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/* 处理项目中抛出的异常*/
/*异常分为
* 业务异常：操作不规范
* 系统异常：
* 其他异常*/
//@RestControllerAdvice
public class ProjectExceptionAdvice {
    /*系统异常*/
    @ExceptionHandler(SystemException.class)
    public Result doSystemException(SystemException ex){
//        记录日志
//        发送消息给运维
//        发送邮件给开发人员
        return new Result(ex.getCode(),null,ex.getMessage());
    }
/*业务异常*/
    @ExceptionHandler(BussinessException.class)
    public Result doBussinessException(BussinessException ex){
        return new Result(ex.getCode(),null,ex.getMessage());
    }
    /*其他异常*/
    @ExceptionHandler(Exception.class)
    public Result doException(Exception ex){
            //        记录日志
            //        发送消息给运维
            //        发送邮件给开发人员
        return new Result(Code.SYSTEM_UNKNOWN_ERR,null,"系统繁忙，请稍后再试");
    }
}
